It is often desirable to record an unexpected event (automobile accident, baseball hit, quick kiss, facial expression, etc), but by the time someone pulls out a camera and focuses on the target, the moment is gone. This problem has long been addressed in the surveillance industry by recording continuously for long periods of time. It is not unusual, for example, for banks or other secure facilities to capture and maintain day after day of surveillance tapes. The downside, of course, is that continuous recordings are costly in terms of equipment, storage, bulkiness, and so forth. Moreover, continuous recording is especially unsuitable for small recording devices such as those carried on eyeglasses.
U.S. Pat. No. 6,163,338 to Johnson et al. (December 2000) focused on the problem of filming automobile accidents. Instead of trying to record millions of frames over long periods of time, Johnson tried to solve the problem by continuously storing the most recent images in a small looping (circular) memory. Upon actuation of a trigger, the system protects the most recently used portion of the memory, and overwrites an older portion. Thus, upon receiving a trigger signal from an accident, a 30 second memory might end up storing 20 seconds before and 10 seconds after the accident.
A looping memory of a device according to Johnson is depicted in prior art FIG. 1. There a small looping memory 11 records frames or other data from a data stream “A”. Each character initiates a small time period, perhaps five seconds, with the “|” character designating the current writing position. When the memory finishes writing to the last position, it returns to the first position and over-writes previously stored data. Upon receipt of a start signal (such as by actuation of a trigger), the memory continues looping for some period of time (corresponding to perhaps a third of the memory capacity), and then stops recording altogether. The recorded memory is protected until it is offloaded or reset.
Johnson and all other referenced extrinsic materials are incorporated herein by reference in their entirety. Where a definition or use of a term in an incorporated reference is inconsistent or contrary to the definition of that term provided herein, the definition of that term provided herein applies and the definition of that term in the reference does not apply.
One problem with Johnson is that the system can only store images from a very short time period. US 2004/0033058 to Reich et al. (publ. February 2004) contemplates an improvement that tries to solve that problem by using two different memories, a small (900 frame) looping buffer and a larger flash memory. In Reich, the trigger signal (record button) causes the buffer to be completely filled, and then additional images to be written to the flash memory until a stop button is pushed.
The Reich system is depicted in prior art FIGS. 2A-2B. In FIG. 2A, a small looping buffer 21 records data from data stream “A”, with the current position marked with “|”. The “_” character is used to initiate memory that has not been used, or has been used but has been marked for overwriting. In FIG. 2B, a start signal has been received, and the system responded by filling the buffer, and then starting to fill a flash memory 22. Regardless of whether the flash memory is eventually filled, both the buffer 21 and the flash memory 22 are effectively locked (protected) upon receipt of a stop signal.
From FIGS. 1 and 2A-2B, one can readily appreciate that both Johnson and Reich can accommodate only a single time period. A user cannot record a second event without overwriting or offloading the stored data from a first event. In addition, both Johnson and Reich still contemplate that the looping portion memory should be very small, perhaps 30 seconds or less. Such devices are completely inadequate for storing long pre-start signal images, such as a five or ten minute period prior to a trigger signal.
Thus, there is still a need for improvements in cameras and other surveillance devices that allow recordation of multiple events without overwriting or offloading, and that can include lengthy portions of data streams prior to start signal events.